// 引入 Node.js 内置的 os 模块（用于获取操作系统信息）
const os = require('os');

console.log('=== 系统与进程信息汇总 ===\n');

// 1. CPU 架构信息
console.log('1. CPU 架构信息：');
console.log('   - 架构类型：', os.arch()); // 例如 x64（64位）、arm64（ARM架构）
console.log('   - CPU 核心数（逻辑核心）：', os.cpus().length); // 例如 8 核
console.log('   - CPU 型号：', os.cpus()[0].model); // 例如 Intel(R) Core(TM) i7-10700K

// 2. 操作系统信息
console.log('\n2. 操作系统信息：');
console.log('   - 操作系统名称：', os.type()); // Windows_NT（Windows）、Linux（Linux）、Darwin（macOS）
console.log('   - 操作系统版本：', os.release()); // 例如 10.0.19045（Windows 10）、5.15.0（Linux 内核）
console.log('   - 系统总内存（GB）：', (os.totalmem() / 1024 / 1024 / 1024).toFixed(2)); // 转换为 GB 并保留 2 位小数
console.log('   - 系统空闲内存（GB）：', (os.freemem() / 1024 / 1024 / 1024).toFixed(2));

// 3. 进程信息（process 是全局对象，无需引入）
console.log('\n3. 进程信息：');
console.log('   - 当前进程 ID（PID）：', process.pid); // 进程唯一标识，每次运行不同
console.log('   - 父进程 ID（PPID）：', process.ppid); // 启动当前进程的父进程 ID
console.log('   - Node.js 可执行文件路径：', process.execPath); // 例如 C:\Program Files\nodejs\node.exe
console.log('   - Node.js 版本：', process.version); // 例如 v18.16.0

// 4. 内存使用情况（当前 Node.js 进程的内存占用）
console.log('\n4. 当前进程内存使用情况（MB）：');
const memoryUsage = process.memoryUsage();
// 将字节（Byte）转换为兆字节（MB），保留 2 位小数
console.log('   - 堆内存使用：', (memoryUsage.heapUsed / 1024 / 1024).toFixed(2)); // 代码和数据占用的堆内存
console.log('   - 堆内存总量：', (memoryUsage.heapTotal / 1024 / 1024).toFixed(2)); // 已分配的堆内存总量
console.log('   - 外部内存使用：', (memoryUsage.external / 1024 / 1024).toFixed(2)); // 外部资源（如 Buffer）占用的内存